package com.joker.aigc.tools.service.video;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;

/**
 * MinIO服务接口
 *
 * @author system
 * @date 2023-12-01
 */
public interface MinioService {


    /**
     * 上传文件到MinIO
     *
     * @param file       文件
     * @param bucketName 存储桶名称
     * @param objectName 对象名称
     * @return 文件访问URL
     */
    String uploadFile(File file, String bucketName, String objectName);

    /**
     * 上传文件到MinIO
     *
     * @param file       文件
     * @param bucketName 存储桶名称
     * @param objectName 对象名称
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file, String bucketName, String objectName);

    /**
     * 上传视频文件
     *
     * @param videoFile 视频文件
     * @return 文件访问URL
     */
    String uploadVideo(MultipartFile videoFile);

    /**
     * 上传视频文件
     *
     * @param videoFile 视频文件
     * @return 文件访问URL
     */
    String uploadVideo(File videoFile);

    /**
     * 上传缩略图文件
     *
     * @param thumbnailFile 缩略图文件
     * @return 文件访问URL
     */
    String uploadThumbnail(MultipartFile thumbnailFile);

    /**
     * 获取文件访问URL
     *
     * @param bucketName 存储桶名称
     * @param objectName 对象名称
     * @return 文件访问URL
     */
    String getFileUrl(String bucketName, String objectName);

    /**
     * 删除文件
     *
     * @param bucketName 存储桶名称
     * @param objectName 对象名称
     */
    void deleteFile(String bucketName, String objectName);
} 